package com.juc.demo1;

import static java.lang.Thread.*;

/**
 * 真正的多线程开发，在公司中开发，降低耦合性
 * 线程就是一个单独的资源类，没有任何附属的操作
 * 1、熟悉 2、方法
 */
public class SaleTicketDemo01 {
    public static void main(String[] args) {
        //并发，多线程操作一个资源类，把资源类丢入线程
        Ticket ticket = new Ticket();
        new Thread(()->{ for (int i = 1; i < 40; i++)ticket.sale(); },"A").start();
        new Thread(()->{ for (int i = 1; i < 40; i++)ticket.sale(); },"B").start();
        new Thread(()->{ for (int i = 1; i < 40; i++)ticket.sale(); },"C").start();
    }
}

//资源类oop编程
class Ticket{
    private  int number = 50;
    //卖票方式
    //synchronized本质：队列，锁
    public synchronized void sale() {
        if(number>0){
            System.out.println(Thread.currentThread().getName() +"卖出了"+(number--)+"票,还剩"+number+"张");
        }
    }
}